package com.hb.common.factory;

import com.hb.common.enums.DbEnum;
import com.hb.common.handler.backup.DbBackupHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * 工厂模式
 */
public class DbBackupFactory {

    private static final Map<DbEnum, DbBackupHandler> factoryMap = new HashMap<>();

    /**
     * 根据数据库类型获取备份与还原处理器
     *
     * @param dbEnum 数据库枚举
     */
    public static DbBackupHandler getHandler(DbEnum dbEnum) {
        return factoryMap.get(dbEnum);
    }

    /**
     * 注册备份与还原处理器
     *
     * @param dbEnum          数据库枚举
     * @param dbBackupService 备份服务
     */
    public static void register(DbEnum dbEnum, DbBackupHandler dbBackupService) {
        factoryMap.put(dbEnum, dbBackupService);
    }
}
